package com.luoc;

import com.luoc.service.Observer;
import com.luoc.service.Subject;
import com.luoc.service.impl.ConcreteObserver;
import com.luoc.service.impl.ConcreteSubject;

/**
 * @Author: luoc
 * @Date: 2019/9/24 15:26
 * 观察者模式
 * 观察者模式(Observer Pattern)：定义对象之间的一种一对多依赖关系，
 * 使得每当一个对象状态发生改变时，其相关依赖对象皆得到通知并被自动更新。
 * 观察者模式的别名包括发布-订阅（Publish/Subscribe）模式、
 * 模型-视图（Model/View）模式、源-监听器（Source/Listener）模式或从属者（Dependents）模式。观察者模式是一种对象行为型模式。
 *
 */
public class ObserverPattern {
    public static void main(String[] args) {
        Subject subject = new ConcreteSubject();
        // subject 会主动通知观察者类
        Observer observer = new ConcreteObserver();
        subject.attach(observer);
        //observer.

       //subject.attach(observer);
        subject.notifyUp();
        System.out.println(observer);
    }
}
